package com.fatgirl.text
{
	
	import flash.text.TextField;
	import flash.text.TextFormat;

	/**
	 * 
	 * 文本样式管理器
	 * @author iceman
	 * 
	 */
	public class TextStyleManager implements ITextStyleManager
	{
		private static var s_TextStyleManager:TextStyleManager;
		private var m_ITextStyleCfg:ITextStyleCfg;
		public function TextStyleManager()
		{
		}
		public static function getInstance():TextStyleManager
		{
			if(!s_TextStyleManager)
			{
				s_TextStyleManager = new TextStyleManager;
			}
			return s_TextStyleManager;
		}
		/**
		 * 设置文本样式配置器 
		 * @param _tfStyleCfg
		 * 
		 */
		public function setTextStyleCfg(_tfStyleCfg:ITextStyleCfg):void
		{
			m_ITextStyleCfg = _tfStyleCfg;
		}
		/**
		 * 批量设置文本样式 
		 * @param _list
		 * @param _name
		 * 
		 */
		public function setTextListStyle(_list:Vector.<TextField>,_name:String):void
		{
			for(var i:int = 0;i<_list.length;i++) setTextStyle(_list[i],_name);
		}
		/**
		 * 设置文本样式  
		 * @param _tf 文本
		 * @param _name 样式名
		 * 
		 */
		public function setTextStyle(_tf:TextField,_name:String):void
		{
			if(_tf)
			{
				//再进行初始化
				var t_textStyle:ITextStyle = m_ITextStyleCfg.getStyle(_name);
				if(!t_textStyle)
				{
					throwError(this,FatError.VALUE_IS_NULL,"setTextStyle:"+_name+"=null");
				}
				var t_proArr:Array = t_textStyle.getTextField();
				if(t_proArr)
				{
					for (var i:String in t_proArr)
					{
						_tf[i] = t_proArr[i];
					}

				}
				var t_filters:Array = t_textStyle.getTextFilters();
				if(t_filters)
				{
					_tf.filters = t_filters;
				}
				var t_format:TextFormat = t_textStyle.getTextFormat();
				if(t_format)
				{
					_tf.setTextFormat(t_format);
					_tf.defaultTextFormat = t_format;
				}
				
			}
		}
	}
}